﻿using System.Collections.Generic;
using Utility.Persistence_Service;

namespace Application_Core.Bauteil_Component.Data_Access_Layer
{
    internal interface BauteilRepository : Repository<Bauteil>
    {
        /// <summary>
        /// Gibt das Bauteil der gegebenen Nummer zurück.
        /// </summary>
        /// <param name="bauteilnummer">Bauteil-Nummer</param>
        /// <returns>Bauteil | null</returns>
        Bauteil FindByNummer(int bauteilnummer);

        /// <summary>
        /// Gibt den technischen Schlüssel eines Bauteils anhand der gegebenen Beuteilnummer zurück.
        /// </summary>
        /// <param name="bauteilnummer">Bauteil-Nummer</param>
        /// <returns>BauteilId | null</returns>
        int? FindIdByNummer(int bauteilnummer);

        /// <summary>
        /// Gibt alle Bauteile mit gegebenen Namen zurück.
        /// </summary>
        /// <param name="name">Bauteil-Name</param>
        /// <returns>List<Bauteil></returns>
        List<Bauteil> FindByName(string name);
    }
}
